www.gusucode.com > 基于Visual C++高级界面特效制作百例源码程序 > 基于Visual C++高级界面特效制作百例源码程序/code/char23/traycalender/TrayCalenderOptions.cpp

    // TrayCalenderOptions.cpp : implementation file
//

#include "stdafx.h"
#include "TrayCalender.h"
#include "TrayCalenderOptions.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CTrayCalenderOptions dialog


CTrayCalenderOptions::CTrayCalenderOptions(CWnd* pParent /*=NULL*/)
	: CDialog(CTrayCalenderOptions::IDD, pParent)
{
	//{{AFX_DATA_INIT(CTrayCalenderOptions)
	m_nShuffleDelay = 0;
	m_bNoAutoShuffle = FALSE;
	m_bNoCheckDate = FALSE;
	//}}AFX_DATA_INIT
}


void CTrayCalenderOptions::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CTrayCalenderOptions)
	DDX_Control(pDX, IDC_AUTOSHUFFLE_SPIN, m_AutoShuffleSpin);
	DDX_Text(pDX, IDC_SHUFFLE_DELAY, m_nShuffleDelay);
	DDX_Check(pDX, IDC_AUTO_SHUFFLE, m_bNoAutoShuffle);
	DDX_Check(pDX, IDC_CHECK_DATE, m_bNoCheckDate);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CTrayCalenderOptions, CDialog)
	//{{AFX_MSG_MAP(CTrayCalenderOptions)
	ON_BN_CLICKED(IDC_AUTO_SHUFFLE, OnAutoShuffle)
	ON_BN_CLICKED(IDC_CHECK_DATE, OnCheckDate)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()


/////////////////////////////////////////////////////////////////////////////
// CTrayCalenderOptions functions

void CTrayCalenderOptions::SetValues(BOOL bAutoShuffle, UINT nShuffleDelay,
									 BOOL bCheckDate)
{
	m_bNoAutoShuffle	 = !bAutoShuffle;
	m_nShuffleDelay		 = nShuffleDelay;
	m_bNoCheckDate		 = !bCheckDate;
}

void CTrayCalenderOptions::GetValues(BOOL *bAutoShuffle, UINT *nShuffleDelay,
									 BOOL *bCheckDate)
{
	*bAutoShuffle		= !m_bNoAutoShuffle;
	*nShuffleDelay		= m_nShuffleDelay;
	*bCheckDate			= !m_bNoCheckDate;
}


/////////////////////////////////////////////////////////////////////////////
// CTrayCalenderOptions message handlers

void CTrayCalenderOptions::OnAutoShuffle() 
{
	UpdateData(TRUE);
	if (!m_bNoAutoShuffle)
    {
		GetDlgItem(IDC_AS_STATIC)->ModifyStyle(WS_DISABLED, 0);
		GetDlgItem(IDC_AUTOSHUFFLE_SPIN)->ModifyStyle(WS_DISABLED, 0);
		GetDlgItem(IDC_ASS_STATIC)->ModifyStyle(WS_DISABLED, 0);

		CEdit* pEditCtrl = (CEdit*) GetDlgItem(IDC_SHUFFLE_DELAY);
		pEditCtrl->SetReadOnly(FALSE);
		pEditCtrl->ModifyStyle(WS_DISABLED, 0);
	} 
    else 
    {
		GetDlgItem(IDC_AS_STATIC)->ModifyStyle(0,WS_DISABLED);
		GetDlgItem(IDC_AUTOSHUFFLE_SPIN)->ModifyStyle(0,WS_DISABLED);
		GetDlgItem(IDC_ASS_STATIC)->ModifyStyle(0,WS_DISABLED);

		CEdit* pEditCtrl = (CEdit*) GetDlgItem(IDC_SHUFFLE_DELAY);
		pEditCtrl->SetReadOnly(TRUE);
		pEditCtrl->ModifyStyle(0,WS_DISABLED);
	}
	Invalidate();
}

void CTrayCalenderOptions::OnCheckDate() 
{
	UpdateData(TRUE);
}

BOOL CTrayCalenderOptions::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	m_AutoShuffleSpin.SetRange(1,999);

	OnAutoShuffle();
	UpdateData();

	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}